/* 发送随机邮箱验证码 */

// 引入nodemailer模块
const nodeemailer = require('nodemailer');
// 设置账号
const transporter = nodeemailer.createTransport({
    host: "smtp.qq.com", // QQ邮箱的SMTP地址
    port: 465, // 每个邮箱的端口号可能是一样的，一般都使用465，但有些公司使用的就不是465
    auth: {
        "user": '1489693645@qq.com', // 邮箱
        "pass": 'yhnsnfccqbeqjggj' // 授权码
    }
});
// 生成随机数组(26个大小写英文字母加0-9)
let createdrandomArr = function() {
    // 保存随机数组
    let randomArr = [];
    // 追加字母
    for (let i = 0; i < 26; i++) {
        randomArr.push(String.fromCharCode((65 + i)));
        randomArr.push((String.fromCharCode((65 + i))).toLocaleLowerCase());
    };
    // 追加数字
    for (let i = 0; i < 10; i++) {
        randomArr.push(i);
    };
    return randomArr;
};
// 随机生成验证码  length:长度,默认为6
let randomCode = function(length = 6) {
    // 随机数组
    let randomArr = createdrandomArr();
    // 保存生成的数组
    let res = [];
    for (let i = 0; i < length; i++) {
        // 随机生成下标
        let index = Math.floor(Math.random() * randomArr.length);
        res[i] = randomArr[index];
    };
    return res.join("");
};
// 导出发送邮件  toEmail:收件人邮箱
module.exports.send = function(toEmail) {
    // 生成验证码
    let emailCode = randomCode();
    // 发送信息    
    let emailOptions = {
        from: '1489693645@qq.com',
        to: toEmail,
        subject: '会飞的鱼--注册验证码',
        html: `<div style="margin:20px 25%">
                    <table cellpadding="0" cellspacing="0" style="background:linear-gradient(#fff1eb,#ace0f9);border-collapse: collapse; border:1px solid #e5e5e5;border-radius:5px;box-shadow: 0 10px 15px rgba(0, 0, 0, 0.05);text-align: left;width: 100%;font-size: 14px;border-spacing: 0; overflow: hidden;">
                        <tbody>
                            <tr>
                                <td style="padding: 5px 30px;">
                                    <img style="width:45px; height:45px;" src="http://bigtree.host/public/img/bigtree.png">
                                    <hr>
                                </td>
                            </tr>
                            <tr>
                                <td style="padding: 30px;">
                                    <h1 style="font-size: 26px; font-weight: bold; color: #a2e1d4;">验证您的注册邮箱地址</h1>
                                    <p style="line-height:1.75em;">感谢您注册 <a href="http://bigtree.host/public/img/bigtree.png" style="color: #fbb8ac;">会飞的鱼<a>
                                    </p>
                                    <p style="line-height:1.75em;">以下是您的邮箱注册验证码，请将它输入到 会飞的鱼 的邮箱验证码输入框中:</p>
                                </td>
                            </tr>
                            <tr>
                                <td style="padding: 0 30px;">
                                    <p
                                        style="color: #253858;text-align:center;line-height:1.75em;background: linear-gradient(#EEEEF3,#D2D2C0);;min-width: 200px;margin: 0 auto;font-size: 28px;border-radius: 5px;border: 1px solid #E1E9DC;font-weight: bold;">
                                        ${emailCode}</p>
                                </td>
                            </tr>
                            <tr>
                                <td style="padding: 30px;">
                                    <p style="line-height:1.75em;">这一封邮件包括一些您的私密的 会飞的鱼 账号信息，请不要告知他人，以免带来不必要的信息泄露风险。 </p>
                                </td>
                            </tr>
                            <tr>
                                <td style="padding: 30px;">
                                    <hr>
                                    <p style="text-align: center;line-height:1.75em;">会飞的鱼 -- 浅笑</p>
                                    <p style=" text-align: center;">联系QQ:1489693645</p>
                                </td>
                            </tr>
                        </tbody>
                    </table>
                </div>`,
    };
    // 发送邮件
    transporter.sendMail(emailOptions, function(error, info) {
        if (error) {
            return console.log(error);
        } else {
            console.log('Message sent : ' + info.response);
        };
    });
    // 将当前验证码返回出去做时效性处理
    return emailCode;
};